const path = require("path");

function resolve(dir) {
  //此处使用path.resolve 或path.join 可自行调整
  return path.join(__dirname, dir);
}

/**
 * @type {import('@vue/cli-service').ProjectOptions}
 */
module.exports = {
  //publicPath部署应用包时的基本 URL /部署在根目录，./部署在任意目录？
  publicPath: process.env.NODE_ENV === "production" ? "/" : "/",

  // 输出文件目录
  outputDir: "dist",

  //
  indexPath: "index.html",

  //静态资源路径
  assetsDir: "assets",

  // eslint-loader 是否在保存的时候检查
  lintOnSave: false,

  //默认情况下，生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存
  filenameHashing: false,

  // 是否使用包含运行时编译器的 Vue 构建版本
  runtimeCompiler: false,

  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: false,

  // 生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)
  integrity: false,

  //
  devServer: {
    host: "0.0.0.0",
    port: 8888,
    https: false,
    proxy: {
      "/cms/api": {
        //target: "http://localhost:8080",
        target: "http://quanrui.cc:8081",
        ws: true,
        changeOrigin: true,
        // pathRewrite: {
        //   "^/cms": "/cms/cms",
        // },
      },
      "/upload": {
        //target: "http://localhost:8080",
        target: "http://quanrui.cc:8081",
        ws: true,
        changeOrigin: true,
      },
    },
    // before: (app) => {},
  },

  // webpack相关配置
  chainWebpack: (config) => {
    //设置别名
    config.resolve.alias.set("@", resolve("src"));
    //    .set('vue$', 'vue/dist/vue.esm.js')
    config.plugin("html").tap((args) => {
      args[0].title = "广州全睿信息科技有限公司";
      return args;
    });
  },

  configureWebpack: (config) => {
    if (process.env.NODE_ENV === "production") {
      // 为生产环境修改配置...
      // 生产环境
      config.mode = "production";
    } else {
      // 为开发环境修改配置...
      // 开发环境
      config.mode = "development";
    }
    //
    config.externals = {
      // AOS: "AOS",
      // TMap: "TMap",
    };
  },

  // css: {
  //   // 是否分离css（插件ExtractTextPlugin）
  //   extract: true,
  //   // 是否开启 CSS source maps
  //   sourceMap: false,
  //   // // 是否启用 CSS modules for all css / pre-processor files.
  //   // modules: false,
  //   requireModuleExtension: false,
  //   //向 CSS 相关的 loader 传递选项,css预设器配置项
  //   // loaderOptions: {
  //   //   // css: {
  //   //   //   // 这里的选项会传递给 css-loader
  //   //   // },
  //   //   // postcss: {
  //   //   //     // 这里的选项会传递给 postcss-loader
  //   //   // }
  //   // },
  // },
  // 构建时开启多进程处理 babel 编译
  parallel: require("os").cpus().length > 1,

  // PWA 插件相关配置
  pwa: {},

  //第三方插件
  pluginOptions: {},

  transpileDependencies: true,
};
